//这是vuex每个module的基础模板
import {
    reqAddOrUpdateShopCart,
    reqDeleteIsCheckCartList,
    reqDeleteOneCartList,
    reqShopCartList,
    reqUpdateCartListCheckAll,
    reqUpdateIsChecked,
} from "@/api/cart";
const state = {
    // cartList: [
    //     {
    //         "id": 2867016744,
    //         "itemId": 3999105,
    //         "itemName": "HAPPY DAYS，40支全棉印花四件套",
    //         "pic": "https://yanxuan-item.nosdn.127.net/621acf1499dca149d50f147485b35bd5.png",
    //         "skuId": 300278494,
    //         "specList": [
    //             {
    //                 "specName": "颜色",
    //                 "specValue": "水果牛"
    //             },
    //             {
    //                 "specName": "尺寸",
    //                 "specValue": "1.2m床三件套:适用1.5mx2m被芯"
    //             }
    //         ],
    //         "cnt": 1,
    //         "totalPrice": 199,
    //         "retailPrice": 199,
    //         "checked": true,
    //     },
    //     {
    //         "id": 2867011654,
    //         "itemId": 3999105,
    //         "itemName": "HAPPY DAYS，40支全棉印花四件套",
    //         "pic": "https://yanxuan-item.nosdn.127.net/f4cf4813772fc92b728258ba11d94872.png",
    //         "skuId": 300278495,
    //         "specList": [
    //             {
    //                 "specName": "颜色",
    //                 "specValue": "萌犬汪"
    //             },
    //             {
    //                 "specName": "尺寸",
    //                 "specValue": "1.2m床三件套:适用1.5mx2m被芯"
    //             }
    //         ],
    //         "cnt": 1,
    //         "totalPrice": 199,
    //         "retailPrice": 199,
    //         "checked": true,
    //     }
    // ],
    cartList: [],

};
const mutations = {
    SAVE_SHOP_CART_LIST(state, data) {
        state.cartList = data;
    },
};

const actions = {
    // 添加购物车或者更改数量
    async addOrUpdateShopCart(_, { skuId, skuNum }) {
        // console.log(skuId, skuNum);
        const result = await reqAddOrUpdateShopCart(skuId, skuNum);
        if (result.code === 200) {
            // console.log(result);
            return "ok";
        } else {
            return Promise.reject(new Error("failed"));
        }
    },

    // 异步获取购物车数据
    async getShopCartList({ commit }) {
        const result = await reqShopCartList();
        // console.log(result);
        if (result.code === 200) {
            commit('SAVE_SHOP_CART_LIST', ((result.data[0] || {}).cartInfoList) || []);
        }
    },

    //   切换单个选中状态
    async updateIsChecked(_, { skuId, isChecked }) {
        const result = await reqUpdateIsChecked(skuId, isChecked);
        if (result.code === 200) {
            return "ok";
        } else {
            return Promise.reject(new Error("failed"));
        }
    },

    //   更新所有的选中状态
    async updateCartListCheckAll(_, { isChecked, skuIdList }) {
        const result = await reqUpdateCartListCheckAll(isChecked, skuIdList);
        if (result.code === 200) {
            return "ok";
        } else {
            return Promise.reject(new Error("failed"));
        }
    },

    // 删除单个购物车商品
    async deleteOneCartList(_, skuId) {
        // console.log(1)
        const result = await reqDeleteOneCartList(skuId);
        if (result.code === 200) {
            return "ok";
        } else {
            return Promise.reject(new Error("failed"));
        }
    },

    //   批量删除多个购物车商品
    async deleteIsCheckCartList(_, obj) {
        const result = await reqDeleteIsCheckCartList(obj);
        if (result.code === 200) {
            return "ok";
        } else {
            return Promise.reject("failed");
        }
    },
};

const getters = {

};

export default {
    state,
    mutations,
    actions,
    getters,
};
